package cn.infrabase.token;

import cn.infrabase.DateTime;
import lombok.*;

import java.util.Map;

/**
 * 令牌基类。
 *
 * @author Weimin Gao
 * @since 1.0.0
 **/
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Data
public class Token {

	/**
	 * 令牌类型
	 */
	private String type;

	/**
	 * 令牌签名算法
	 */
	private String algorithm;

	/**
	 * 令牌标识
	 */
	private String tid;

	/**
	 * 令牌签发时间
	 */
	private DateTime issued;

	/**
	 * 令牌有效时间单位秒（值小于等于0时表示永久有效）
	 */
	private long efftime;

	/**
	 * 令牌到期时间
	 */
	private DateTime expiry;

	/**
	 * 令牌附加数据
	 */
	private Map<String, String> data;

	/**
	 * 令牌序号化为字符串的值
	 */
	private String value;

}
